mod aes_test;
mod base64_test;
mod hmac_test;
mod md5_test;
mod rand_test;

use ring::digest;

fn main() {
    println!("{}", sha256("hello"));
    println!("{}", sha256("hell"));
}

/// 计算 SHA-256 哈希值，用于做消息摘要，防篡改
/// pram: data: 待计算的字符串
/// returns: 十六进制哈希值
fn sha256(data: &str) -> String {
    // 创建 SHA-256 哈希上下文
    let mut context = digest::Context::new(&digest::SHA256);

    // 添加数据进行哈希
    context.update(data.as_bytes());

    // 计算最终哈希值
    let hash_result = context.finish();

    // 将哈希值转换为十六进制字符串
    let hex_hash = hash_result
        .as_ref()
        .iter()
        .map(|byte| format!("{:02x}", byte))
        .collect::<String>();

    hex_hash
}
